home *** CD-ROM | disk | FTP | other *** search
/ BBS in a Box 7 / BBS in a Box - Macintosh - Volume VII (BBS in a Box) (January 1993).iso / Files / Hyper / Me-Mz / MH Checking & Savings v2.4d.cpt / Checking & Savings Demo2.4 / stack.txt < prev   
Text File  |  1988-02-27  |  15KB  |  467 lines

  1. -- stack: in.4
  2. -- format: 8 (HyperCard 1)
  3. -- flags: 0x4000 (can't delete)
  4. -- protect password hash: 2389196536
  5. -- maximum user level: 2 (typing)
  6. -- window: Rect(x1=0, y1=0, x2=0, y2=0)
  7. -- screen: Rect(x1=0, y1=0, x2=0, y2=0)
  8. -- card dimensions: w=0 h=0
  9. -- scroll: x=0 y=0
  10. -- background count: 7
  11. -- first background id: 2643
  12. -- card count: 42
  13. -- first card id: 13730
  14. -- list block id: 3131
  15. -- print block id: 3478
  16. -- font table block id: 0
  17. -- style table block id: 0
  18. -- free block count: 0
  19. -- free size: 0 bytes
  20. -- total size: 200512 bytes
  21. -- stack block size: 12800 bytes
  22. -- created by hypercard version: 0x00000000
  23. -- compacted by hypercard version: 0x00000000
  24. -- modified by hypercard version: 0x00000000
  25. -- opened by hypercard version: 0x00000000
  26. -- patterns[0]: 0x0000000000000000
  27. -- patterns[1]: 0x8000000008000000
  28. -- patterns[2]: 0x8800220088002200
  29. -- patterns[3]: 0x8888222288882222
  30. -- patterns[4]: 0x88AA22AA88AA22AA
  31. -- patterns[5]: 0xCCAA33AACCAA33AA
  32. -- patterns[6]: 0xEEAABBAAEEAABBAA
  33. -- patterns[7]: 0xEEBBBBEEEEBBBBEE
  34. -- patterns[8]: 0xFFBBFFEEFFBBFFEE
  35. -- patterns[9]: 0xFFBBFFFFFFBBFFFF
  36. -- patterns[10]: 0x8010022001084004
  37. -- patterns[11]: 0xFFFFFFFFFFFFFFFF
  38. -- patterns[12]: 0x8822882288228822
  39. -- patterns[13]: 0x1122448811224488
  40. -- patterns[14]: 0xC4800C6843023026
  41. -- patterns[15]: 0xB130031BD8C00C8D
  42. -- patterns[16]: 0xAA00AA00AA00AA00
  43. -- patterns[17]: 0x8822552288225522
  44. -- patterns[18]: 0x8855225588552255
  45. -- patterns[19]: 0x77DD77DD77DD77DD
  46. -- patterns[20]: 0x8000000000000000
  47. -- patterns[21]: 0xAA55AA55AA55AA55
  48. -- patterns[22]: 0x038448300C020101
  49. -- patterns[23]: 0x8244394482010101
  50. -- patterns[24]: 0x8814224188412214
  51. -- patterns[25]: 0x8080413E080814E3
  52. -- patterns[26]: 0x22048C7422179810
  53. -- patterns[27]: 0xBE808808EB088880
  54. -- patterns[28]: 0x25C8328964244C92
  55. -- patterns[29]: 0xA29C41BE2AC914EB
  56. -- patterns[30]: 0x40A00000040A0000
  57. -- patterns[31]: 0x8040200002040800
  58. -- patterns[32]: 0xAA00800088008000
  59. -- patterns[33]: 0xFF80808080808080
  60. -- patterns[34]: 0x081C22C180010204
  61. -- patterns[35]: 0xFF808080FF080808
  62. -- patterns[36]: 0xF87422478F172271
  63. -- patterns[37]: 0xBF00BFBFB0B0B0B0
  64. -- patterns[38]: 0xFF7FBE5DA2418000
  65. -- patterns[39]: 0xFAF5FAF5A050A050
  66. -- checksum: 0x0
  67. ----- HyperTalk script -----
  68. on copyright
  69.   -- THESE SCRIPTS ARE COPYRIGHTED BY MAC HELP COMPANY
  70.   -- CONTACT AUTHOR FOR PERMISSION TO USE THESE SCRIPTS
  71. end copyright
  72.  
  73. on HelpMsg1 String, ThisItem
  74.   show card field "Help Message Field"
  75.   put "Explanation of" && ThisItem into card field "Help Message Field"
  76.   put String into line 3 of card field "Help Message Field"
  77.   play harpsichord dx ae d
  78.   if ThisItem contains "button" then set hilite of ThisItem to false
  79. end HelpMsg1
  80.  
  81. on HelpMsg2 String, ThisItem
  82.   show background field "Help Message Field"
  83.   put "Explanation of" && ThisItem into background field "Help Message Field"
  84.   put String into line 3 of background field "Help Message Field"
  85.   play harpsichord dx ae d
  86.   if ThisItem contains "button" then set hilite of ThisItem to false
  87. end HelpMsg2
  88.  
  89. on mouseStillDown
  90.   if the optionKey is down and the shiftKey is down then
  91.     edit script of the name of the target
  92.     pass mouseStillDown
  93.   end if
  94. end mouseStillDown
  95.  
  96. on openCard
  97.   Global RegMessage, DoMessage, VersionMessage
  98.  
  99.   if DoMessage is not False then
  100.     set UserLevel to 2
  101.     play boing a
  102.  
  103.     answer VersionMessage & Return & "See where to Register or Continue?" & " ¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†        " & "This program is copyrighted by Mac Help Company, 1988.  All Rights Reserved." with "Continue" or "See"
  104.  
  105.     if it is "See" then
  106.       answer RegMessage with "Good Deal"
  107.     end if
  108.   end if
  109. end OpenCard
  110.  
  111.  
  112. on CloseStack
  113.   set userlevel to 5
  114.   get the freeSize of this stack
  115.   if it > 100000 then
  116.     put the value of it into NumK
  117.     put Round(NumK/1000) into NumK
  118.     answer "Because a significant number of transactions have been " & "cleared or deleted, you can reclaim approximately " & NumK & "k of available disk space by compacting this stack." with "Compact"
  119.     doMenu "Compact Stack"
  120.   end if
  121. end CloseStack
  122.  
  123.  
  124. on openstack
  125.   Global GivingDate, ShortGivingDate, LastButtonID1, LastButtonID2
  126.   Global ThisField, RegMessage, DoMessage, VersionMessage
  127.   Global PersonalAddress, BackinAFlash, Transaction, TransName
  128.  
  129.   set cursor to 4
  130.   if BackinAFlash is not True then
  131.     put True into BackinAFlash
  132.     put False into DoMessage
  133.     hide message box
  134.     hide menubar
  135.     put the long date into GivingDate
  136.     put the short date into ShortGivingDate
  137.     put 0 into ThisField
  138.  
  139.     go to card "RegCard"
  140.     get background field "Message"
  141.     put line 1 of it into VersionMessage
  142.     put VersionMessage & Return & line 2 of it into VersionMessage
  143.     put line 4 of it into RegMessage
  144.  
  145.  
  146.     set lockscreen to true
  147.     go to card "a" of background "a"
  148.  
  149.     get card field "Statistics"
  150.     put line 1 of it into AcctNum
  151.     put line 2 of it into theScroll
  152.     put line 3 of it into Transaction
  153.     put line 4 of it into TransName
  154.  
  155.     set the scroll of card field "Summary" to theScroll
  156.     set lockscreen to true
  157.     --show card button "Account Hilighter"
  158.     click at the loc of card button "Account Hilighter"
  159.  
  160.     put ShortgivingDate into card field "Card Date2"
  161.  
  162.     send "ResetFields" to background
  163.  
  164.     go to card "RegCard"
  165.     set lockscreen to false
  166.     visual effect scroll up to black
  167.     visual effect scroll up to gray
  168.     visual effect dissolve
  169.     if VersionMessage contains "Demo" then
  170.       put True into DoMessage
  171.       put "To receive documentation the" && "latest version, send $40.00 (check or money order)" && "to:" & Return & Return & RegMessage into RegMessage
  172.     else
  173.       put False into DoMessage
  174.     end if
  175.  
  176.     if card field "Check Address" is empty and DoMessage is False then
  177.       answer "Please personalize your registered copy of this stack." & "  This information will also be used when printing your checks!" with "Cancel" or "OK"
  178.       if it is "Cancel" then
  179.         show background field "Message"
  180.         go to card "Map"
  181.         pass "openStack"
  182.       end if
  183.       hide background field "Message"
  184.       set the style of card field "Check Address" to opaque
  185.       ask "Name or Business Name?"
  186.       put it into line 1 of card field "Check Address"
  187.       ask "Street address?"
  188.       put it into line 2 of card field "Check Address"
  189.       ask "City, State, and Zip?"
  190.       put it into line 3 of card field "Check Address"
  191.       ask "Phone Number and/or Drivers License?"
  192.       put it into line 4 of card field "Check Address"
  193.       answer "All information is entered.  You can make any corrections " & "by moving the cursor on to the address field.  Click 'Accept' when done."
  194.       show card button "Accept"
  195.       show card button "Don't Accept"
  196.       set locktext of card field "Check Address" to false
  197.     else
  198.       put card field "Check Address" into PersonalAddress
  199.       go to card "Map"
  200.     end if
  201.   end if -- end BackinAFlash
  202. end openstack
  203.  
  204.  
  205. on "CreditSubs"
  206.   Global BeginCreditField, ExitFlag, ShortGivingDate, TransName
  207.  
  208.   put BeginCreditField+4 into EndField
  209.  
  210.   set numberformat to 0.00
  211.   put true into ExitFlag
  212.  
  213.   repeat with i = BeginCreditField to EndField
  214.     put card field id i into SubName
  215.     put i+5 into SubAmtID
  216.     get card field id SubAmtID
  217.     put it into Amount
  218.     if Amount is not empty then
  219.       if SubName is not empty then
  220.         if the value of Amount is not 0 then
  221.           put False into ExitFlag
  222.           put the value of Amount into SubAmt
  223.           go to card SubName of background "Sub Accounts"
  224.  
  225.           put 0 into i
  226.           put shortGivingDate into ThisDate
  227.           convert ThisDate to DateItems
  228.           repeat forever
  229.             add 1 to i
  230.             get line i of background field "Sub Amount"
  231.             if it is empty then
  232.               put TransName into TempTrans
  233.               delete last char of TempTrans
  234.               put shortGivingDate & "   $ " & SubAmt && TempTrans into line i of background field "Sub Amount"
  235.               exit repeat
  236.             else
  237.               convert word 1 of it to dateItems
  238.               put it into Temp
  239.               if Temp < ThisDate then
  240.                 -- keep going
  241.               else
  242.                 put TransName into TempTrans
  243.                 delete last char of TempTrans
  244.                 put return before line i of background field "Sub Amount"
  245.                 put shortGivingDate & "   $ " & SubAmt && TempTrans into line i of background field "Sub Amount"
  246.                 exit repeat
  247.               end if
  248.             end if
  249.           end repeat
  250.  
  251.           add SubAmt to background field "Sub Total"
  252.           go to card "a" of background "a"
  253.         end if
  254.       end if
  255.     end if
  256.   end repeat
  257. end "CreditSubs"
  258.  
  259. on "UnCreditSubs"
  260.   Global BeginCreditField, ShortGivingDate, TransName
  261.   put BeginCreditField+4 into EndField
  262.  
  263.   set numberformat to 0.00
  264.   repeat with i = BeginCreditField to EndField
  265.     put card field id i into SubName
  266.     if SubName is not empty then
  267.       put i+5 into SubAmtID
  268.       get card field id SubAmtID
  269.       if it is not empty then
  270.         put the value of it into SubAmt
  271.         if SubAmt is not 0 then
  272.           go to card SubName of background "Sub Accounts"
  273.  
  274.           put 0 into i
  275.           put shortGivingDate into ThisDate
  276.           convert ThisDate to DateItems
  277.           repeat forever
  278.             add 1 to i
  279.             get line i of background field "Sub Amount"
  280.             if it is empty then
  281.               put 0 - SubAmt into SubAmt
  282.               put TransName into TempTrans
  283.               delete last char of TempTrans
  284.               put shortGivingDate & "   $ " & SubAmt && TempTrans into line i of background field "Sub Amount"
  285.               exit repeat
  286.             else
  287.               convert word 1 of it to dateItems
  288.               put it into Temp
  289.               if Temp < ThisDate then
  290.                 -- keep going
  291.               else
  292.                 put 0 - SubAmt into SubAmt
  293.                 put TransName into TempTrans
  294.                 delete last char of TempTrans
  295.                 put return before line i of background field "Sub Amount"
  296.                 put shortGivingDate & "   $ " & SubAmt && TempTrans into line i of background field "Sub Amount"
  297.                 exit repeat
  298.               end if
  299.             end if
  300.           end repeat
  301.  
  302.           Add SubAmt to background field "Sub Total"
  303.           go to card "a" of background "a"
  304.         end if
  305.       end if
  306.     end if
  307.   end repeat
  308. end "UnCreditSubs"
  309.  
  310.  
  311. on "CreditSubs2"
  312.   Global BeginCreditField, ShortGivingDate, TransName
  313.  
  314.   put BeginCreditField+4 into EndField
  315.   put the ID of this card into ThisCardID
  316.  
  317.   set numberformat to 0.00
  318.   repeat with i = BeginCreditField to EndField
  319.     put background field id i into SubName
  320.     if SubName is not empty then
  321.       put i+5 into SubAmtID
  322.       get background field id SubAmtID
  323.       put the value of it into SubAmt
  324.       if SubAmt is not 0 then
  325.         go to card SubName of background "Sub Accounts"
  326.  
  327.         put 0 into i
  328.         put shortGivingDate into ThisDate
  329.         convert ThisDate to DateItems
  330.         repeat forever
  331.           add 1 to i
  332.           get line i of background field "Sub Amount"
  333.           if it is empty then
  334.             put TransName into TempTrans
  335.             delete last char of TempTrans
  336.             put shortGivingDate & "   $ " & SubAmt && TempTrans into line i of background field "Sub Amount"
  337.             exit repeat
  338.           else
  339.             convert word 1 of it to dateItems
  340.             put it into Temp
  341.             if Temp < ThisDate then
  342.               -- keep going
  343.             else
  344.               put TransName into TempTrans
  345.               delete last char of TempTrans
  346.               put return before line i of background field "Sub Amount"
  347.               put shortGivingDate & "   $ " & SubAmt && TempTrans into line i of background field "Sub Amount"
  348.               exit repeat
  349.             end if
  350.           end if
  351.         end repeat
  352.  
  353.         add SubAmt to background field "Sub Total"
  354.         go to ThisCardID
  355.       end if
  356.     end if
  357.   end repeat
  358. end "CreditSubs2"
  359.  
  360. on "UnCreditSubs2"
  361.   Global BeginCreditField, ShortGivingDate, TransName
  362.  
  363.   put BeginCreditField+4 into EndField
  364.   put the ID of this card into ThisCardID
  365.  
  366.   set numberformat to 0.00
  367.   repeat with i = BeginCreditField to EndField
  368.     put background field id i into SubName
  369.     if SubName is not empty then
  370.       put i+5 into SubAmtID
  371.       get background field id SubAmtID
  372.       put the value of it into SubAmt
  373.       if SubAmt is not 0 then
  374.         go to card SubName of background "Sub Accounts"
  375.  
  376.         put 0 into i
  377.         put shortGivingDate into ThisDate
  378.         convert ThisDate to DateItems
  379.         repeat forever
  380.           add 1 to i
  381.           get line i of background field "Sub Amount"
  382.           if it is empty then
  383.             put 0 - SubAmt into SubAmt
  384.             put TransName into TempTrans
  385.             delete last char of TempTrans
  386.             put shortGivingDate & "   $ " & SubAmt && TempTrans into line i of background field "Sub Amount"
  387.             exit repeat
  388.           else
  389.             convert word 1 of it to dateItems
  390.             put it into Temp
  391.             if Temp < ThisDate then
  392.               -- keep going
  393.             else
  394.               put 0 - SubAmt into SubAmt
  395.               put TransName into TempTrans
  396.               delete last char of TempTrans
  397.               put return before line i of background field "Sub Amount"
  398.               put shortGivingDate & "   $ " & SubAmt && TempTrans into line i of background field "Sub Amount"
  399.               exit repeat
  400.             end if
  401.           end if
  402.         end repeat
  403.  
  404.         subtract SubAmt from background field "Sub Total"
  405.         go to ThisCardID
  406.       end if
  407.     end if
  408.   end repeat
  409. end "UnCreditSubs2"
  410.  
  411. on "CheckForExisting"
  412.   Global TransName, LastCheckNumber, AcctNum, ShortGivingDate
  413.   Global ExitFlag, NewCardName, Transaction
  414.  
  415.   set lockscreen to true
  416.   go to card NewCardName of background "a"
  417.   if the result is empty then
  418.     beep
  419.     set numberformat to 0.00
  420.     put background field "Credit" into aC
  421.     put background field "Debit" into aD
  422.     subtract aD from aC
  423.     answer "On this date you have already made at least one " & "transaction of type  '" & Transaction & "' TO THE SAME ACCOUNT "& "for $ " & AC & "   What do you wish to do?" with "Cancel" or "View it" or "Make New"
  424.     if it is "view it" then
  425.       set lockscreen to false
  426.       put True into ExitFlag
  427.       exit "CheckForExisting"
  428.     else
  429.       go to card "a" of background "a"
  430.       if it is "Cancel" then
  431.         set lockscreen to false
  432.         put True into ExitFlag
  433.         exit "CheckForExisting"
  434.       end if
  435.     end if
  436.   end if
  437.   set lockscreen to false
  438.  
  439. end "CheckForExisting"
  440.  
  441. on "DoDate"
  442.   Global GivingDate, ShortGivingDate, ExitFlag, DatePhrase
  443.  
  444.   if GivingDate is empty then put the long date into GivingDate
  445.   put GivingDate into ShortGivingDate
  446.   convert ShortGivingDate to short date
  447.   put 0 into temp
  448.  
  449.   repeat until Temp = GivingDate
  450.     put GivingDate into Temp
  451.     put GivingDate into ShortGivingDate
  452.     convert ShortGivingDate to short date
  453.     ask DatePhrase & GivingDate & "?" with ShortGivingDate
  454.  
  455.     if it contains "To" then put the short date into it
  456.  
  457.     if it is "" then
  458.       put True into ExitFlag
  459.       exit "DoDate"
  460.     end if
  461.  
  462.     put it into GivingDate
  463.     convert GivingDate to long date
  464.   end repeat
  465.  
  466. end "DoDate"
  467.